home *** CD-ROM | disk | FTP | other *** search
-
- program Demo_4_SWAG;
- var
- old_border : integer; { used in main body of program }
- Rnd_border : integer;
-
- (****************************************************************************)
- procedure Set_Border(color:byte); { Written by Pat Roberts 1994 }
- begin
- asm
- mov ah,10h { This subroutine sets the color value stored in the }
- mov al,01h { overscan register of the current palette from the }
- mov BH,Color { Bios thru int 10h . Assumes EGA\VGA }
- int 10h
- end;
- end;
-
- (****************************************************************************)
- function Get_Border:byte; { Written by Pat Roberts 1994 }
- begin
- asm
- mov ah,10h { This subroutine reads the color value stored in the }
- mov al,08h { overscan register of the current palette from the }
- int 10h { Bios thru int 10h. Assumes EGA\VGA }
- mov @result,bH { result is byte(BL) not a integer(BX) }
- end;
- end;
-
- (******************************Main******************************************)
- begin
- Randomize;
- old_border := get_border;
- writeln(' Old border color was ',old_border);
- Rnd_border := ((random(7)+1));
- set_border(rnd_border);
- writeln(' Get_Border reports color ',get_border); readln; end.
- end.